@echo off
chcp 65001 >nul
echo ========================================
echo    Flutter 应用快速调试工具
echo ========================================
echo.

:: 检查是否在项目根目录
if not exist "pubspec.yaml" (
    echo [错误] 请在项目根目录运行此脚本
    pause
    exit /b 1
)

:: 显示菜单
:menu
cls
echo ========================================
echo    Flutter 应用快速调试工具
echo ========================================
echo.
echo 请选择操作：
echo.
echo [1] 检查设备连接
echo [2] 清理并重新构建
echo [3] 运行调试版本
echo [4] 授予应用权限
echo [5] 查看应用日志
echo [6] 卸载应用
echo [7] 完整流程（清理+构建+运行+授权）
echo [0] 退出
echo.
set /p choice="请输入选项 (0-7): "

if "%choice%"=="1" goto check_device
if "%choice%"=="2" goto clean_build
if "%choice%"=="3" goto run_app
if "%choice%"=="4" goto grant_permissions
if "%choice%"=="5" goto view_logs
if "%choice%"=="6" goto uninstall_app
if "%choice%"=="7" goto full_process
if "%choice%"=="0" goto end
goto menu

:: 检查设备连接
:check_device
cls
echo [步骤] 检查设备连接...
echo.
adb devices -l
echo.
echo 如果看到 "device" 状态，说明设备已正确连接
echo 如果看到 "unauthorized"，请在手机上允许USB调试
echo.
pause
goto menu

:: 清理并重新构建
:clean_build
cls
echo [步骤] 清理并重新构建...
echo.
echo [1/3] 清理Flutter缓存...
call flutter clean
echo.
echo [2/3] 获取依赖包...
call flutter pub get
echo.
echo [3/3] 预编译资源...
call flutter precache
echo.
echo [完成] 清理和构建完成
pause
goto menu

:: 运行调试版本
:run_app
cls
echo [步骤] 运行调试版本...
echo.
echo 正在启动应用，请稍候...
echo 提示：按 'r' 进行热重载，按 'R' 进行热重启
echo.
call flutter run
pause
goto menu

:: 授予应用权限
:grant_permissions
cls
echo [步骤] 授予应用权限...
echo.
cd android
call adb_grant_permissions.bat
cd ..
pause
goto menu

:: 查看应用日志
:view_logs
cls
echo [步骤] 查看应用日志...
echo.
echo 按 Ctrl+C 停止查看日志
echo.
adb logcat | findstr "flutter"
pause
goto menu

:: 卸载应用
:uninstall_app
cls
echo [步骤] 卸载应用...
echo.
set /p confirm="确定要卸载应用吗？(y/n): "
if /i "%confirm%"=="y" (
    adb uninstall com.matrix.capp.matrix_capp.debug
    echo.
    echo [完成] 应用已卸载
) else (
    echo [取消] 未执行卸载操作
)
pause
goto menu

:: 完整流程
:full_process
cls
echo ========================================
echo    执行完整调试流程
echo ========================================
echo.
echo 这将执行以下步骤：
echo 1. 清理Flutter缓存
echo 2. 获取依赖包
echo 3. 运行应用
echo 4. 授予权限
echo.
set /p confirm="确定要继续吗？(y/n): "
if /i not "%confirm%"=="y" goto menu

echo.
echo [1/4] 清理Flutter缓存...
call flutter clean

echo.
echo [2/4] 获取依赖包...
call flutter pub get

echo.
echo [3/4] 运行应用（这可能需要几分钟）...
start cmd /k "flutter run && pause"

echo.
echo [4/4] 等待10秒后授予权限...
timeout /t 10 /nobreak

cd android
call adb_grant_permissions.bat
cd ..

echo.
echo ========================================
echo 完整流程执行完成！
echo ========================================
echo.
echo 应用应该已经在设备上运行了
echo 如果遇到问题，请检查新打开的命令窗口
echo.
pause
goto menu

:end
echo.
echo 感谢使用 Flutter 快速调试工具！
echo.
exit /b 0
